SoCal Code Camp – Excellent Weekend
The Fullerton Code Camp was a big success, as far as I could tell. I attended at least 4 or 5 presentations (besides the ones that I as presenting myself) and was impressed with the quality of both the speakers and the content. Unfortunately I could only attend a few of the dozen or so I wanted to see. Here are a few short reviews of sessions I was able to see:
“Actionscript Game Framework” – Bob Mitchell
I’ve been messing around lately with Flash CS3 and ActionScript 3 (for fun and profit… but mostly for fun) so I wanted to see Bob Mitchell’s presentation about an “Actionscript Game Framework” which he has developed over the last month or so. The purpose of the framework is to provide a simplified API for a number of services needed by games – such as turn management, high score, keyboard events, game state storage, sounds, events, users, game level, interacting with a game server, and so on. Besides providing reusable functionality that any game can use, a big advantage of this approach is that game designers that might be only marginally skilled in programming can easily use ActionScript to wire up their games with functionality.
Bob works for Sony Online Entertainment where they have a number of projects that use Flash for single and multi-user games. He showed a few examples of code snippets, and talked about multi-user game servers such as SmartFox. I’d like to see a longer presentation on his framework and hope he gets a chance to present again sometime soon with a little more time. Overall, it was very useful to me to see his approach. Recently I have been helping a friend of mine with some Flash games, and I have been feeling that we were starting to see enough duplication in the games to start writing a mini-framework. I think Bob’s presentation provided plenty of insight into the sort of things that we’ll be able to move along with it quickly.
A bonus for me was that Bob mentioned that he recently became a Scrum-Master, and that at least some of the development being done at SOE follows an Agile methodology. Very cool.
“A TDD Demonstration” – Carl Manaster
I met Carl at last year’s Fullerton Code Camp, and have been fortunate to be able to see him present on several occasions since then. I missed his TDD presentation at the UCSD Code Camp last summer, and I wanted to make sure and catch this one. I wasn’t disappointed.
Carl demonstrated Test Driven Development by coding up a “Natural Sorting” algorithm using a bottom-up approach. The exact example, of course, is not the important thing – what was important (and really exciting and fun) was to see how quickly Carl moved from start to finish in extremely tiny steps, showing how the process of TDD steers the effort.
He started with a “Lighthouse” test that would eventually prove that the finished code (once written) could take an unsorted list and sort it. This is essentially what I think of as a “Story Test”. That is, a test that proves to the “customer” that the feature being developed works as expected. After that was written and proven to fail he went straight to the most elemental part of the algorithm – a “Chunk”, and and wrote a test to prove that the string of a Chunk can be properly set. Each step of the way Carl emphasized the Red/Green/Refactor pattern: Write a failing test, make the test pass, remove duplication.
Carls sprinkled the entire presentation with short, poignant and very useful maxims. For example (and I am paraphrasing here):
After writing a test or modifying your code to pass a test, “Say” what you expect before you run the test. “I expect this to fail”, or “I expect this to pass”. This helps you to keep your code and your tests to the point. This confirms to yourself that you understand what you expect that line of code to do.
In case you get a chance to see Carl’s presentation I don’t want to ruin the story for you, so I won’t tell you how it ends. However, this was a heart-warming presentation you can bring the whole family to, even your grandmother. One of the attendees commented at the end that this was the clearest and most effective demonstation of TDD that he had ever seen. I think that sums it up nicely.
Other Presentations:
I also was able to attend a couple of talks by Llewellyn Falco, and I’ll give a short review of them next chance I get. These were the Cruise Control and Testing Kata presentations. Every time I talk with Llewellyn, or attend one of his sessions, I learn something and I wasn’t disappointed this time.
Other than that, I was able to catch a few minutes each of several other talks, and regret I didn’t have more time. In addition to seeing the presentations it was great to get together with old friends I’ve met at previous code camps and around at the various developer group meetings. I’m already looking forward to the next Code Camp in San Diego, and encourage you to try to make it to one of these events in your area if you get the chance.
Leave a comment